package com.atguigu.bigdata.scala.chapter04

object Scala06_Flow {

    def main(args: Array[String]): Unit = {

        // TODO 循环守卫
        // 当循环时，存在判断条件，如果判断条件成立，那么才能执行循环体
        // 【1, 2, 3, 4】
        // i != 3
        // 【1，2，4】
//        for ( i <- Range(1,5) if i != 3  ) {
//            println("@@@@@@@")
//            //println("i = " + i )
//        }
//        println("************************")
//        for ( i <- Range(1, 5) ) {
//            println("%%%%%%")
////            if ( i != 3 ) {
////                println("i = " + i )
////            }
//        }

        // TODO 循环嵌套
        // 所谓的嵌套，其实就是循环中有循环
        // 嵌套循环的逻辑：先对外部的循环进行处理，每一次循环中，再对内部的循环做处理
        // 内部的循环全部处理完毕后，外部的循环进行下一次处理，依此类推

        // 为什么咱们讲了那么多的语法，但是用的不多呢
        // String
        // substring, ls, trim
//        for ( i <- 1 to 3 ) {
//            // i = 3
//            for ( j <- 1 to 3 ) {
//                // j = 1
//                // j = 2
//                // j = 3
//                //println("i = " + i + ", j = " + j)
//            }
//            //println("********************")
//        }
        // Scala为了简化嵌套循环操作，将嵌套循环可以写在一起
//        for ( i <- 1 to 3; j <- 1 to 3 ) {
//            println("i = " + i + ", j = " + j)
//        }

        // TODO 循环变量
        for ( i <- 1 to 5 ) {
            var j = i - 1
            //println(j)
        }

        for ( i <- 1 to 5; j = i - 1 ) {
            println(j)
        }
    }
}
